package com.fourth.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fourth.dto.*;
import com.fourth.entity.DatabaseManage;

import javax.validation.constraints.NotNull;

/**
 * <p>
 * 数据源信息表 服务类
 * </p>
 *
 * @author cfy
 * @since 2023-02-27
 */
public interface DatabaseManageService extends IService<DatabaseManage> {

    /**
     * 添加或修改数据源
     *
     * @param addOrUpdateDatabaseDto
     * @return boolean
     */
    boolean addOrUpdate(AddOrUpdateDatabaseDto addOrUpdateDatabaseDto);


    /**
     * 删除数据源
     *
     * @param deleteDto
     * @return
     */

    Integer delete(@NotNull DeleteDto deleteDto);

    /**
     * 改变应用状态
     *
     * @param changeApplyStatusDto
     * @return
     */
    Integer changeApplyStatus(ChangeApplyStatusDto changeApplyStatusDto);

    /**
     * 连接数据源
     *
     * @param testConnectionDto
     */
    void connectionDataSource(TestConnectionDto testConnectionDto);

    /**
     * 分页查询数据源列表
     *
     * @param queryDatabaseDto
     * @return
     */
    Page<QueryListDto> queryDatabase(QueryDatabaseDto queryDatabaseDto);

    /**
     *  根据id查询数据源
     * @param id
     * @return DatabaseDto
     */
    DatabaseDto getDatabaseById(Integer id);
}
